
import re
from langchain import chains
from langchain.prompts import PromptTemplate
from langchain_community.chat_models import ChatTongyi
from langchain.output_parsers import PydanticOutputParser
from langchain.chains import LLMChain, SequentialChain
from langchain.chains.base import Chain
from pydantic import BaseModel, Field
from typing import List, Optional, Dict, Any
from dotenv import load_dotenv
import os
from checker.base_checker import BaseChecker
from domain.check_domain import ComplianceCheckResult
from langchain_core.runnables import RunnablePassthrough
from langchain.prompts import StringPromptTemplate

load_dotenv()

"""日用品checker"""
class CommodityChecker(BaseChecker):


    def getTemplate(self) -> StringPromptTemplate:
        return """作为一个商品合规性检查专家，请对以下商品名称进行全面分析。 
        参考以下相关法律法规：

        商品名称：{product_name}

        请按照以下步骤进行分析：

        1.禁用内容筛查
        -禁用词汇检查
            医疗术语：处方、药方、抗菌、消炎等
            绝对化用语：特效、第一、顶级、100%安全等
            虚假暗示：纯天然（未全用天然原料）、治愈率等
        -成分宣称规范
            使用原料名称需与配方一致（如含烟酰胺需标注含量）
            禁止暗示原料功效（如\"含玻尿酸\"需对应保湿宣称）

        2.使用合规性检查
        -暗示性规避
            不得通过商标暗示医疗效果（如\"扁鹊\"\"李时珍\"等历史人物名）

        3.误导性内容检查
        -概念混淆检查
            禁止使用\"量子护肤\"\"光子嫩肤\"等跨领域术语
            不得暗示医疗器械功效（如\"医用级\"\"手术级\"）
        -文化敏感性筛查
            禁用封建迷信词汇（如\"神灵\"\"驱邪\"）
            动植物名称不得暗示疗效（如\"灵芝修复\"需对应抗衰宣称）

        4. 风险评估：
        - 判定风险等级
        - 给出对应的违规类型、违规点和对应的法律依据
        - 提供改进建议
    

        {format_instructions}
      """
  



